1. Field of the Invention
The present invention is related generally to a data processing system and in particular to a method and apparatus for the migration of a software partition. More particularly, the present invention is directed to a computer implemented method, apparatus, and computer usable program code for inserting a checkpoint module into fully utilized application address space.
2. Description of the Related Art
In a software partitioned environment, a single instance of the operating system can be partitioned into multiple virtual operating system environments. Each of these virtual operating system environments is known as a software partition. A software partition is a virtualized operating system environment within a single instance of the operating system. An example of a software partition is AIX® workload partition (WPAR), which is a product available from International Business Machines (IBM®) Corporation.
Software running within each software partition will appear to have its own separate instance of the operating system. A software partition may include one or more processes. Processes in a software partition are completely isolated from processes in other software partitions in the same system. They are not allowed to interact with processes in other software partitions in the same system.
Data processing systems frequently utilize data integrity operations to ensure that the state of data stored in memory may be recreated in the event of a failure. A checkpoint operation is a data integrity operation in which the application state and memory contents for an application running on the kernel are written to stable storage at particular time points to provide a basis upon which to recreate the state of an application in the event of a failure. The particular time point at which state and memory contents are written to stable storage may be referred to as a checkpoint.
Checkpoint data may be used to migrate or restore a software partition, including any processes running in the partition, from one physical computing device to another physical computing device, while processes are still running in the software partition. Migration of a software partition involves checkpointing the state of every process in the partition on one data processing system and then restoring the state of every process on another data processing system using the checkpoint data.
User space technologies which perform checkpoint procedures to checkpoint application context and checkpoint data for a process may be inserted into the application process by an external checkpoint system. The insertion of a checkpoint module into an application address space may be performed unbeknownst to the application process. In addition, the checkpoint module may be inserted into the application process outside mainline application context via mechanisms such as signal handlers. A checkpoint module inserted in this manner is required to fit within the address space of the application. The insertion of a checkpoint module within an application poses a problem if the application address space is currently fully utilized before checkpoint module insertion or if the amount of space in the application address space is insufficient to accommodate the checkpoint module.